今天繼續來講解 Layers
這個物件。
在 OpenLayers
中,地理資訊是放在 Source
物件中,而 Layers
的功能就是將 Source
的資訊呈現在 View
上。 OpenLayers
有提供以下幾種方式:
而資料的來源,OpenLayers
也有提供幾個圖層來源:
上面的解釋可能讓人摸不著頭緒,藉由底下的程式碼來做詳細的解釋:
// 熱點圖層
var vector = new ol.layer.Heatmap({
// 資料來源
source: new ol.source.Vector({
// 網址
url: 'https://openlayers.org/en/v4.6.5/examples/data/kml/2012_Earthquakes_Mag5.kml',
// 資料格式
format: new ol.format.KML({
extractStyles: false
})
}),
// 模糊度
blur: 10,
// 半徑
radius: 50
});
var map = new ol.Map({
layers: [vector],
target: 'map',
view: new ol.View({
projection: 'EPSG:4326',
center:[120.625763,23.992247],
zoom: 8
})
});
你可以把上面的程式碼,跟 Day01
的範例程式碼中替換後,會得到以下的圖。
當然,如果如果熱點圖沒有搭配地圖的話,是根本派不上用場。所以我們在 Layers
再疊加上一個地圖圖層。
註:圖層疊加有順序,index 由小到大,順序是最底層到最高層
// 熱點圖層
var vector = new ol.layer.Heatmap ({ ... });
// 圖磚
var raster = new ol.layer.Tile({
source: new ol.source.Stamen({
layer: 'toner'
})
});
var map = new ol.Map({
layers: [raster,vector],
target: 'map',
view: new ol.View({
projection: 'EPSG:4326',
center:[120.625763,23.992247],
zoom: 8
})
});
最後你會得到這張圖。
以上,是今天的分享。明天再來講解什麼是地圖投影法
。